home *** CD-ROM | disk | FTP | other *** search
- { Programmed By : A.Serdar HAZAR for ─=≡ Programlama Sanati ≡=- }
- uses dos,crt,unit1,unit2;
- type
- color = record
- r,g,b : byte;
- end;
-
- var
- i,x : word;
- gd,gm : integer;
- regs : registers;
- palette : array[1..256] of color;
- ilk : color;
- leddurum : byte absolute $40:$17;
- eski : byte;
- palet2 : array[1..$300] of byte;
- palet3 : array[1..$300] of byte;
- a,b : byte;
-
- begin
- asm
- mov ah,0
- mov bx,0
- mov si,seg muzik
- mov es,si
- mov si,offset muzik
- end;
- Hscobj;
-
- regs.ax:=$1017;
- regs.bx:=0;
- regs.cx:=256;
- regs.es:=seg(palet2[1]);
- regs.dx:=ofs(palet2[1]);
- intr($10,regs);
-
- for a:=20 downto 0 do
- begin
- for x:=4 to $300 do palet3[x]:=trunc(palet2[x]*a/20);
- regs.ax:=$1012;
- regs.bx:=0;
- regs.cx:=256;
- regs.es:=seg(palet3[1]);
- regs.dx:=ofs(palet3[1]);
- intr($10,regs);
- delay(20);
- end;
-
- asm
- mov ax,13h;
- int 10h
- end;
- move(mem[seg(resim)+2:ofs(resim)],palette,$300);
- move(mem[seg(resim)+2:ofs(resim)],palet2,$300);
- for x:=1 to $300 do palet3[x]:=0;
- regs.ax:=$1012;
- regs.bx:=0;
- regs.cx:=256;
- regs.dx:=ofs(palet3[1]);
- regs.es:=seg(palet3[1]);
- intr($10,regs);
- move(mem[seg(resim)+$32:ofs(resim)],mem[$a000:0],64000);
- for a:=0 to 20 do
- begin
- for x:=1 to $300 do palet3[x]:=trunc(palet2[x]*a/20);
- regs.ax:=$1012;
- regs.bx:=0;
- regs.cx:=256;
- regs.es:=seg(palet3[1]);
- regs.dx:=ofs(palet3[1]);
- intr($10,regs);
- end;
-
- eski:=leddurum;
-
- regs.ax:=$1012;
- regs.bx:=1;
- regs.cx:=255;
- repeat
- i:=random(3);
- if i=0 then begin
- leddurum:=64;
- delay(50);
- end;
- if i=1 then begin
- leddurum:=32;
- delay(50);
- end;
- if i=2 then begin
- leddurum:=16;
- delay(50);
- end;
- ilk:=palette[2];
- move(palette[2],palette[1],sizeof(palette)-1);
- palette[256]:=ilk;
- regs.es:=seg(palette[1]);
- regs.dx:=ofs(palette[1]);
- intr($10,regs);
- until keypressed;readkey;
-
- move(palette[1],palet2[1],$300);
-
- for a:=20 downto 0 do
- begin
- for x:=4 to $300 do palet3[x]:=trunc(palet2[x]*a/20);
- regs.ax:=$1012;
- regs.bx:=0;
- regs.cx:=256;
- regs.es:=seg(palet3[1]);
- regs.dx:=ofs(palet3[1]);
- intr($10,regs);
- end;
- asm
- mov ax,3h;
- int 10h
- end;
- leddurum:=eski;
- regs.ax:=$1010;
- regs.bx:=7;
- regs.ch:=0;
- regs.cl:=0;
- regs.dh:=0;
- intr($10,regs);
-
- gotoxy(1,25);
- writeln(' ─═ Prizma ═─ ');
- writeln(' Turkish Amateur Programmers'' Group');
- writeln(' Coded by A.Serdar HAZAR');
-
- for i:= 0 to 42 do
- begin
- regs.ch:=i;
- regs.cl:=i;
- regs.dh:=i;
- intr($10,regs);
- delay(25);
- end;
- asm
- mov ah,2
- end;
- Hscobj;
- end.
-